﻿using AutoMapper.Internal.Mappers;
using ProductionManage.Models.DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using wangyaxin.Qi.Dto;

namespace wangyaxin.Qi
{
    public interface IQiAppService: IApplicationService
    {
        
     

        /// <summary>
        /// 客户查询
        /// </summary>
        /// <returns></returns>
        Task<string> GetClientShow(string clientCode="", string clientName="", int page = 1, int limit = 3);

        /// <summary>
        /// 客户添加
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> AddClient(CreateClientDto input);

        /// <summary>
        /// 客户修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> UpdateClientById(UpdateClientDto input);
        /// <summary>
        /// 客户删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DelClient(int id);
        /// <summary>
        /// 仓库查询
        /// </summary>
        /// <param name="warehouseCode"></param>
        /// <param name="warehouseName"></param>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        Task<string> GetWareHouse(string warehouseCode = "", string warehouseName = "", int page = 1, int limit = 3);


        /// <summary>
        /// 仓库添加
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> AddWareHouse(CreateWareHouseDto input);

        /// <summary>
        /// 仓库修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> UpdateWareHouse(UpdateWareHouseDto input);
        /// <summary>
        /// 仓库删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DelWareHouse(int id);





        /// <summary>
        /// SN查询
        /// </summary>
        /// <returns></returns>
        Task<string> GetSnShow(string snCode = "", string itemCode = "", string itemName = "", string batchCode = "", int page = 1, int limit = 3);

        /// <summary>
        /// Sn添加
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> AddSn(CreateSnDto input);
        /// <summary>
        /// Sn修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> UpdateSn(UpdateSnDto input);

        /// <summary>
        /// Sn删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DelSn(int id);


        /// <summary>
        /// 生产领料查询
        /// </summary>
        /// <returns></returns>
        Task<string> GetHeader(string issueCode = "", string issueName = "", string warehouseName = "", string issueDate = "", string status = "",  int page = 1, int limit = 3);
        /// <summary>
        /// 生产领料添加
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> AddHeader(CreateHeaderDto input);
        /// <summary>
        /// 生产领料修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<int> UpdateHeader(UpdateHeaderDto input);
        /// <summary>
        /// 生产领料删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DelHeader(int id);

    }
}
